1. Field of the Invention
The present disclosure relates generally to input/output processing, and in particular, to determining and/or monitoring the progress of operations associated with input/output processing.
2. Description of Background
Input/output (I/O) operations are used to transfer data between memory and I/O devices of an I/O processing system. Specifically, data is written from memory to one or more I/O devices, and data is read from one or more I/O devices to memory by executing I/O operations.
To facilitate processing of I/O operations, an I/O subsystem of the I/O processing system is employed. The I/O subsystem is coupled to main memory and the I/O devices of the I/O processing system and directs the flow of information between memory and the I/O devices. One example of an I/O subsystem is a channel subsystem. The channel subsystem uses channel paths as communications media. Each channel path includes a channel coupled to a control unit, the control unit being further coupled to one or more I/O devices.
The channel subsystem may employ channel command words (CCWs) to transfer data between the I/O devices and memory. A CCW specifies the command to be executed. For commands initiating certain I/O operations, the CCW designates the memory area associated with the operation, the action to be taken whenever a transfer to or from the area is completed, and other options.
During I/O processing, a list of CCWs is fetched from memory by a channel. The channel parses each command from the list of CCWs and forwards a number of the commands, each command in its own entity, to a control unit coupled to the channel. The control unit then processes the commands. The channel tracks the state of each command and controls when the next set of commands are to be sent to the control unit for processing. The channel ensures that each command is sent to the control unit in its own entity. A response to the command (i.e., a “command response” or CMR) is sent to the channel from the control unit to provide an indication to the channel that the control unit is active and operating, and has received and is executing the command. Further, the channel infers certain information associated with processing the response from the control unit for each command.
Currently, there is no link protocol that allows for determining whether the control unit received the command without requiring a response from the control unit for each command. Typically, current link protocols require that the control unit send a response to each command to indicate that the command is received and the control unit is executing the command. This requirement of a response to each command may compromise performance of the link protocol.
Furthermore, there is no link protocol that allows for monitoring the progress of an I/O operation during the operation to allow for early detection of problems.
Accordingly, there is a need in the art for systems and methods to allow for the channel to determine whether a command has been received without the need for a response to each command, and to allow the channel to monitor the progress of an I/O operation.